package cn.tedu.hotel.service;

import cn.tedu.hotel.pojo.dto.AlbumAddNewDTO;
import cn.tedu.hotel.pojo.vo.AlbumListItemVO;
import cn.tedu.hotel.pojo.vo.AlbumStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 *  处理相册数据的业务接口
 */
@Transactional
public interface IAlbumService {
    /**
     * 添加相册
     *
     * @param albumAddNewDTO 添加的相册对象
     */
    void addNew(AlbumAddNewDTO albumAddNewDTO);

    /**
     * 删除相册
     *
     * @param id 被删除的相册的id
     */
    void deleteById(Long id);

    /**
     *  根据多个id 批量删除相册
     * @param ids
     */
    void deleteByIds(Long[] ids);

    /**
     *  修改相册数据
     * @param albumAddNewDTO
     */
    void update(AlbumAddNewDTO albumAddNewDTO);

    /**
     * 根据id查询相册详情
     *
     * @param id 相册id
     * @return 匹配的相册详情，如果没有匹配的数据，将抛出异常
     */
    AlbumStandardVO getStandardById(Long id);

    /**
     * 查询相册列表
     *
     * @return 相册列表的集合
     */
    List<AlbumListItemVO> listAlbum();
}
